(function($) {
    $.fn.index = {};
    $.fn.index.isGetdata=false;
    $.fn.index.sd;
    $.fn.index.wd;
    $.fn.index.qd;
    $.fn.index.chart3;
    $.fn.index.chart4;
    $.fn.index.chart5;
    $.fn.index.chart6;
    $.fn.index.chart7;
    $.fn.index.initial = function() {
        dateInitial();
        binddateChange();
        getSbh();
        bindSbhChange();
        setInterval(getData, 5000);
    };
    var binddateChange = function() {
        $('#date').on('change', function() {
            getData();
            fillAllChart();
           // $.fn.index.chartfillcontent();
        });
    };
    var bindSbhChange = function() {
        $('#sbh').on('change', function() {
            getData();
            fillAllChart();
             $.cookie('selectVal', $('#sbh').val(),{path:'/',expires:90});
        });
    };
    var getSbh = function() {
        $.ajax({
            url : 'device/getAll',
            dataType : 'json',
            success : function(data) {
                if (data['status'] == 1001) {
                    data = data['body'];
                    var sbhSelect = $('#sbh');
                    sbhSelect.html('');
                    for (var i = data.length-1; i >=0; i--) {
                  //  	alert(data.length);
                    	getByArgid(sbhSelect,data[i]['argid']);
                    }
                    if($.cookie('selectVal'))
                    {
                        $('#sbh').val($.cookie('selectVal'));
                    }
                    setTimeout(getData, 2000);
                   
                }
            }
        });
    };
    var getByArgid=function(sbhSelect,argid){
    	$.ajax({
    		url:'device/getByargid/'+argid,
    		dataType:'json',
    		success:function(data){
    			if (data['status']==1001) {
					data=data['body'];
					sbhSelect.append($('<option value = ' + argid + '>' + data['name'] + '</option>'));
				}
    		}
    	});
    };
    var getData = function() {
        //  var date = new Date().format("yyyy-MM-dd hh:mm:ss");
        var date = $('#date').val();
        var sbh = $('#sbh').val();
        if (sbh==null) {
			return;
		}
        //  var fdate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
        var data = {
            "day" : date,
            "sbh" : sbh
        };
        $.ajax({
            url : 'args/getByDaySbh?t='+(new Date()).getTime(),
            data : $.toJSON(data),
            dataType : 'json',
            type : 'post',
            contentType : 'application/json;charset=utf-8',
            success : function(data) {
                if (data.status == 1001) {
                    data = data['body'];
                    dataParse(data);
                    if(!$.fn.index.isGetdata){
                        fillAllChart();
                        $.fn.index.isGetdata=true;
                    }
                    
                }
            }
        });
    };
    
    var fillAllChart = function() {
        var content1 = $('#container1');
        var content2 = $('#container2');
        var content3 = $('#container3');
        var content4 = $('#container4');
        var content5 = $('#container5');
        var content6 = $('#container6');
        var content7 = $('#container7');
        var kqwdj = {
            name : "空气温度",
            data : kqwd,
            color : '#FF3300'
        };
        var trwdj = {
            name : "土壤温度",
            data : trwd,
            color : '#3DEE11'
        };
        var kqsdj = {
            name : "空气湿度",
            data : kqsd,
            color : '#FF3300'
        };
        var trsdj = {
            name : "土壤湿度",
            data : trsd,
            color : '#3DEE11'
        };
        var gzqdj = {
            name : "光照强度",
            data : gzqd
        };
        var PM25={
        		name:"PM2.5",
        		data:pm25
        };
        var CO2={
        		name:"CO2",
        		data:co2
        };
        var O2={
        		name:"O2",
        		data:o2
        };
        var trPH={
        		name:"trPH",
        		data:trph
        };
        var wd = [kqwdj, trwdj];
        var sd = [kqsdj, trsdj];
        var qd = [gzqdj];
        fillcontent2(content1, '空气/土壤温度对比曲线', wd, datex, '摄氏度℃');
        fillcontent4(content4, 'PM2.5范围曲线', [PM25], datex, '微克/立方米',$.fn.index.chart4);
        fillcontent5(content5, 'CO2曲线', [CO2], datex, 'ppm',$.fn.index.chart5);
        fillcontent6(content6, 'trPH曲线', [trPH], datex, '',$.fn.index.chart6);
        fillcontent7(content7, 'O2曲线', [O2], datex, '',$.fn.index.chart7);
        $.fn.index.fillcontent0(content2, '空气/土壤湿度对比曲线', sd, datex, '湿度%');
        fillcontent1(content3, '光照强度', qd, datex, '强度 Lux',$.fn.index.chart3);
    };
    var updatechart = function() {

    };
    var datex = [];
    var kqwd = [];
    var kqsd = [];
    var trwd = [];
    var trsd = [];
    var gzqd = [];
    var pm25=[];
    var co2=[];
    var o2=[];
    var trph=[];
    var dataParse = function(data) {
        datex = [];
        kqwd = [];
        kqsd = [];
        trwd = [];
        trsd = [];
        gzqd = [];
        pm25=[];
        co2=[];
        o2=[];
        trph=[];
        for (var i = 0; i < data.length; i++) {

            datex.push(data[i]['date'].substring(10));
            kqwd.push(data[i]['kqwd']);
            kqsd.push(data[i]['kqsd']);
            trwd.push(data[i]['trwd']);
            trsd.push(data[i]['trsd']);
            gzqd.push(data[i]['gzqd']);
            pm25.push(data[i]['pm25']);
            co2.push(data[i]['co2']);
            o2.push(data[i]['o2']);
            trph.push(data[i]['trph']);
        }
    };
    var dateInitial = function() {
        $('.date').val(new Date().format('yyyy-MM-dd'));
        $('.date').datepicker({
            autoClose : true,
            dateFormat : "yyyy-mm-dd",
            days : ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
            daysShort : ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
            daysMin : ["日", "一", "二", "三", "四", "五", "六"],
            months : ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
            monthsShort : ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
            showMonthAfterYear : true,
            viewStart : 0,
            weekStart : 1,
            yearSuffix : "年",
            isDisabled : function(date) {
                return date.valueOf() > Date.now() ? true : false;
            }
        });
    };
    $.fn.index.chartfillcontent=function(){
      
         $.fn.index.sd.series[0].setData(kqsd);
         $.fn.index.sd.series[1].setData(trsd);
         $.fn.index.sd.xAxis[0].setCategories(datex);
    };
    $.fn.index.fillcontent0 = function(content, title, data, date, ytext) {
        $('#container2').highcharts({
            chart : {
                type : 'line',
                events : {
                    load : function() {
                           $.fn.index.sd= this;
                        setInterval(function() {                      
                           $.fn.index.chartfillcontent();                           
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',    
                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + '%';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                }
            },
            series : data
        });
    };
    var fillcontent1 = function(content, title, data, date, ytext,chart) {
        content.highcharts({
            chart : {
                type : 'area',
                events : {
                    load : function() {
                        $.fn.index.gzqd=this;
                        setInterval(function() {
                            $.fn.index.gzqd.series[0].setData(gzqd);
                            $.fn.index.gzqd.xAxis[0].setCategories(datex);
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'Lux';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };
    
     var fillcontent4 = function(content, title, data, date, ytext,chart) {
        content.highcharts({
            chart : {
                type : 'area',
                events : {
                    load : function() {
                       $.fn.index.chart4=this;
                        setInterval(function() {
                            $.fn.index.chart4.series[0].setData(pm25);
                            $.fn.index.chart4.xAxis[0].setCategories(datex);
                            
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'Lux';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };
     var fillcontent5 = function(content, title, data, date, ytext,chart) {
        content.highcharts({
            chart : {
                type : 'area',
                events : {
                    load : function() {
                        $.fn.index.chart5=this;
                        setInterval(function() {
                            $.fn.index.chart5.series[0].setData(co2);
                            $.fn.index.chart5.xAxis[0].setCategories(datex);
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'Lux';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };
     var fillcontent6 = function(content, title, data, date, ytext,chart) {
        content.highcharts({
            chart : {
                type : 'area',
                events : {
                    load : function() {
                        $.fn.index.chart6=this;
                        setInterval(function() {
                            $.fn.index.chart6.series[0].setData(trph);
                            $.fn.index.chart6.xAxis[0].setCategories(datex);
                         
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'Lux';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };
     var fillcontent7 = function(content, title, data, date, ytext,chart) {
        content.highcharts({
            chart : {
                type : 'area',
                events : {
                    load : function() {
                        $.fn.index.chart7=this;
                        setInterval(function() {
                            $.fn.index.chart7.series[0].setData(o2);
                            $.fn.index.chart7.xAxis[0].setCategories(datex);
                         
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                }
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'Lux';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };
    var fillcontent2 = function(content, title, data, date, ytext) {
        content.highcharts({
            chart : {
                type : 'line',
                events : {
                    load : function() {
                        $.fn.index.wd=this;
                        setInterval(function() {
                           $.fn.index.wd.series[0].setData(kqwd);
                           $.fn.index.wd.series[1].setData(trwd);
                           $.fn.index.wd.xAxis[0].setCategories(datex);
                        }, 1000 * 20);
                    }
                }
            },
            title : {
                text : title
            },
            subtitle : {
                text : ''
            },
            xAxis : {
                type : 'datetime',
                dateTimeLabelFormats : {
                    minute : '%H:%M',
                },

                categories : date,
                //     tickInterval:3600*1000,
                minTickInterval : 10,

            },
            yAxis : {
                title : {
                    text : ytext
                },
                min : -20,
                max : 50
            },
            tooltip : {
                enabled : true,
                formatter : function() {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + '°C';
                }
            },
            plotOptions : {
                line : {
                    dataLabels : {
                        enabled : true
                    },
                    enableMouseTracking : true
                }
            },
            series : data
        });
    };

})(jQuery);
